﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace N03_11HCA_HTTTHD.Controllers
{
    public class AdminController : Controller
    {

        Data_DAO_DTO_Lib.TINTUC_DAO tintucDAO = new Data_DAO_DTO_Lib.TINTUC_DAO();
        Data_DAO_DTO_Lib.THONGTINTIMMUA_DAO timmuaDAO = new Data_DAO_DTO_Lib.THONGTINTIMMUA_DAO();
        Data_DAO_DTO_Lib.DANHMUC_DAO danhmucDAO = new Data_DAO_DTO_Lib.DANHMUC_DAO();
        Data_DAO_DTO_Lib.LINHVUC_DAO linhvucDAO = new Data_DAO_DTO_Lib.LINHVUC_DAO();

        Data_DAO_DTO_Lib.RAOVAT_DAO raovatDAO = new Data_DAO_DTO_Lib.RAOVAT_DAO();

        Data_DAO_DTO_Lib.THONGTINCANBAN_DAO canbanDAO = new Data_DAO_DTO_Lib.THONGTINCANBAN_DAO();

        Data_DAO_DTO_Lib.THONGDIEP_DAO thongdiepDAO = new Data_DAO_DTO_Lib.THONGDIEP_DAO();

        Data_DAO_DTO_Lib.TAIKHOAN_DAO taikhoanDAO = new Data_DAO_DTO_Lib.TAIKHOAN_DAO();

        Data_DAO_DTO_Lib.DOANHNGHIEP_DAO doanhnghiepDAO = new Data_DAO_DTO_Lib.DOANHNGHIEP_DAO();

        Data_DAO_DTO_Lib.LOAITAIKHOAN_DAO loaitaikhoanDAO = new Data_DAO_DTO_Lib.LOAITAIKHOAN_DAO();

        Data_DAO_DTO_Lib.LOAITHANHVIEN_DAO loaithanhvienDAO = new Data_DAO_DTO_Lib.LOAITHANHVIEN_DAO();

        //
        // GET: /Admin/

        public ActionResult Index()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.Admin);

            if (isCoQuyen == false)
            {
                //về trang chủ
                return RedirectToAction("Index", "Home");
            }

            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);

            return View("Admin");
        }

        /*               RAO VẶT           */
        Data_DAO_DTO_Lib.PHANQUYEN_DAO phanQuyenDAO = new Data_DAO_DTO_Lib.PHANQUYEN_DAO();

        [HttpPost]
        public JsonResult LayDanhSachLoaiTaiKhoan_PQ(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTaiKhoan);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                int soLuong = loaitaikhoanDAO.LaySoLuongPQ();
                List<Data_DAO_DTO_Lib.DTO.DTO> list = loaitaikhoanDAO.LayDanhSachLoaiTaiKhoan_PQ(jtStartIndex, jtPageSize, jtSorting);
                return Json(new { Result = "OK", Records = list, TotalRecordCount = soLuong });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        // GET: /Admin/ThemRaoVat
        [HttpPost]
        public JsonResult ThemQuyen(Data_DAO_DTO_Lib.DTO.PHANQUYEN_DTO pq)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminPhanQuyen);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                Data_DAO_DTO_Lib.DTO.DTO rv = phanQuyenDAO.Them(pq);
                return Json(new { Result = "OK", Record = rv });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/XoaRaoVat
        [HttpPost]
        public JsonResult XoaPhanQuyen(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminPhanQuyen);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }


            try
            {
                phanQuyenDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

       
        //
        // GET: /Admin/QuanLyRaoVat
        public ActionResult QuanLyPhanQuyen()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminPhanQuyen);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
               
            }
            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);
            return View("Admin_QuanLyPhanQuyen");
        }

        [HttpPost]
        public JsonResult DanhSachPhanQuyenCuaLoaiTK(int loaiTaiKhoan)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminPhanQuyen);

            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                int soLuong = phanQuyenDAO.LaySoLuong(loaiTaiKhoan);
                List<Data_DAO_DTO_Lib.DTO.PHANQUYEN_DTO> list = phanQuyenDAO.LayDanhSachPhanQuyenTuLoaiLoaiTK(loaiTaiKhoan);
                return Json(new { Result = "OK", Records = list, TotalRecordCount = soLuong });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        [HttpPost]
        public JsonResult DanhSachQuyenOptions(int loaiTaiKhoan)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminPhanQuyen);

            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                Object list = phanQuyenDAO.LayDanhSachQuyenOptionTuLoaiTK(loaiTaiKhoan);
                return Json(new { Result = "OK", Options = list });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        /*           KẾT THÚC RAO VẶT           */
        /*               RAO VẶT           */

        //
        // GET: /Admin/ThemRaoVat
        [HttpPost]
        public JsonResult ThemRaoVat(Data_DAO_DTO_Lib.DTO.RAOVAT_DTO raoVat)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyRaoVat);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                Models.ThongTinDanhNhapTaiKhoan TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);

                raoVat.IDTaiKhoanRaoVat = (int)TK.ID1;
                Data_DAO_DTO_Lib.DTO.DTO rv = raovatDAO.Them(raoVat);
                return Json(new { Result = "OK", Record = rv });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/XoaRaoVat
        [HttpPost]
        public JsonResult XoaRaoVat(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyRaoVat);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }


            try
            {
                raovatDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        // POST: /Admin/CapNhatRaoVat
        [HttpPost]
        public JsonResult CapNhatRaoVat(Data_DAO_DTO_Lib.DTO.RAOVAT_DTO raoVat)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyRaoVat);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }


            try
            {
                raovatDAO.CapNhat(raoVat);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // GET: /Admin/QuanLyRaoVat
        public ActionResult QuanLyRaoVat()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyRaoVat);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
               
            }
            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);

            Models.Admin_QuanLyRaoVat model = new Models.Admin_QuanLyRaoVat(taiKhoanDAO.LayDanhSach());

            return View("Admin_QuanLyRaoVat", model);
        }

        // GET: /Admin/DanhSachRaoVat
        [HttpPost]
        public JsonResult DanhSachRaoVat(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyRaoVat);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                int soLuong = raovatDAO.LaySoLuong();
                List<Data_DAO_DTO_Lib.DTO.DTO> list = raovatDAO.LayDanhSachCoThamSo(jtStartIndex, jtPageSize, jtSorting,true);
                return Json(new { Result = "OK", Records = list, TotalRecordCount = soLuong });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        [HttpPost]
        public JsonResult LocDanhSachRaoVat(string tieuDe = "", int nguoiRao = 0, int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyRaoVat);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                //Get data from database
                Data_DAO_DTO_Lib.DTO.DTO_Loc dtoLoc = raovatDAO.LayDanhSachSuDungLoc(tieuDe, nguoiRao, jtStartIndex, jtPageSize, jtSorting, true);

                //Return result to jTable
                return Json(new { Result = "OK", Records = dtoLoc.dtoList, TotalRecordCount = dtoLoc.SoLuong });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //Hỗ trợ lấy danh sách người dùng
        [HttpPost]
        public JsonResult DanhSachNguoiDung()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.Admin);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                Object list = taiKhoanDAO.LayDanhSachOptions();
                return Json(new { Result = "OK", Options = list });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        Data_DAO_DTO_Lib.TAIKHOAN_DAO taiKhoanDAO = new Data_DAO_DTO_Lib.TAIKHOAN_DAO();

        /*           KẾT THÚC RAO VẶT           */

        /*               CẦN BÁN         */

        //
        // GET: /Admin/ThemCanBan
        [HttpPost]
        public JsonResult ThemCanBan(Data_DAO_DTO_Lib.DTO.THONGTINCANBAN_DTO canBan)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyCanBan);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                canBan.IDNguoiDang = 1;
                canBan.HinhAnhDinhKem = "hinhAnh";
                Data_DAO_DTO_Lib.DTO.DTO cb = canbanDAO.Them(canBan);
                return Json(new { Result = "OK", Record = cb });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        //
        // POST: /Admin/XoaCanBan
        [HttpPost]
        public JsonResult XoaCanBan(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyCanBan);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                canbanDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/CapNhatCanBan
        [HttpPost]
        public JsonResult CapNhatCanBan(Data_DAO_DTO_Lib.DTO.THONGTINCANBAN_DTO canBan)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyCanBan);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                canbanDAO.CapNhat(canBan);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // GET: /Admin/QuanLyCanban
        public ActionResult QuanLyCanBan()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyCanBan);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
            }

            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);
            Models.Admin_QuanLyCanBan model = new Models.Admin_QuanLyCanBan(taiKhoanDAO.LayDanhSach());
            return View("Admin_QuanLyCanBan", model);
        }

        // GET: /Admin/DanhSachCanBan
        [HttpPost]
        public JsonResult DanhSachCanBan(String tenViet = "", String tenAnh = "", int loaiCanBan = 0, int nguoiDang = 0, int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyCanBan);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            Data_DAO_DTO_Lib.DTO.DTO_Loc kq = canbanDAO.LayDanhSachSuDungLoc(tenViet, tenAnh, loaiCanBan,nguoiDang, jtStartIndex, jtPageSize, jtSorting, true);
            return Json(new { Result = "OK", Records = kq.dtoList, TotalRecordCount = kq.SoLuong });
        }

        /*           KẾT THÚC CẦN BÁN         */
        /*               THÔNG ĐIỆP         */

        //
        // GET: /Admin/ThemThongDiep

        [HttpPost]
        public JsonResult ThemThongDiep(Data_DAO_DTO_Lib.DTO.THONGDIEP_DTO thongDiep)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyThongDiep);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {

                Data_DAO_DTO_Lib.DTO.DTO cb = thongdiepDAO.Them(thongDiep);
                return Json(new { Result = "OK", Record = cb });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        //
        // POST: /Admin/XoaThongDiep
        [HttpPost]
        public JsonResult XoaThongDiep(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyThongDiep);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                thongdiepDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/CapNhatThongDiep
        [HttpPost]
        public JsonResult CapNhatThongDiep(Data_DAO_DTO_Lib.DTO.THONGDIEP_DTO thongDiep)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyThongDiep);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                thongdiepDAO.CapNhat(thongDiep);
                return Json(new { Result = "OK" });               
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // GET: /Admin/QuanLyThongDiep
        public ActionResult QuanLyThongDiep()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyThongDiep);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
            }

            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);

            return View("Admin_QuanLyThongDiep");
        }

        // GET: /Admin/DanhSachThongDiep
        [HttpPost]
        public JsonResult DanhSachThongDiep(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyThongDiep);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            int soLuong = thongdiepDAO.LaySoLuong();
            List<Data_DAO_DTO_Lib.DTO.DTO> list = thongdiepDAO.LayDanhSachCoThamSo(jtStartIndex, jtPageSize, jtSorting);
            return Json(new { Result = "OK", Records = list, TotalRecordCount = soLuong });


        }

        /*           KẾT THÚC THÔNG ĐIỆP      */

        /*               NGƯỜI DUNG       */

        //
        // GET: /Admin/ThemNguoiDung


        [HttpPost]
        public JsonResult ThemNguoiDung(Data_DAO_DTO_Lib.DTO.TAIKHOAN_DTO nguoiDung)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTaiKhoan);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                Data_DAO_DTO_Lib.DTO.DTO cb = taikhoanDAO.Them(nguoiDung);
                return Json(new { Result = "OK", Record = cb });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        //
        // POST: /Admin/XoaNguoiDung
        [HttpPost]
        public JsonResult XoaNguoiDung(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTaiKhoan);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                taikhoanDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/CapNhatNguoiDung
        [HttpPost]
        public JsonResult CapNhatNguoiDung(Data_DAO_DTO_Lib.DTO.TAIKHOAN_DTO nguoiDung)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTaiKhoan);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                taikhoanDAO.CapNhat(nguoiDung);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        Data_DAO_DTO_Lib.LOAITAIKHOAN_DAO ltkDAO = new Data_DAO_DTO_Lib.LOAITAIKHOAN_DAO();
        Data_DAO_DTO_Lib.LOAITHANHVIEN_DAO ltvDAO = new Data_DAO_DTO_Lib.LOAITHANHVIEN_DAO();

        //
        // GET: /Admin/QuanLyNguoiDung
        public ActionResult QuanLyNguoiDung()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTaiKhoan);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
             }

            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);

            List<Data_DAO_DTO_Lib.DTO.DTO> lLoaiTV = ltvDAO.LayDanhSach();
            List<Data_DAO_DTO_Lib.DTO.DTO> lLoaiTK = ltkDAO.LayDanhSach();
            Models.Admin_QuanLyNguoiDung model = new Models.Admin_QuanLyNguoiDung(lLoaiTK, lLoaiTV);
            return View("Admin_QuanLyNguoiDung", model);
        }

        // GET: /Admin/DanhSachTaiKhoan
        [HttpPost]
        public JsonResult DanhSachTaiKhoan(String tenDangNhap = "", String hoTen = "", String Email = "", String DienThoai = "", int loaiThanhVien = 0, int loaiTaiKhoan = 0, int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTaiKhoan);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            Data_DAO_DTO_Lib.DTO.DTO_Loc kq = taikhoanDAO.LayDanhSachSuDungLoc(tenDangNhap, hoTen, Email, DienThoai, loaiThanhVien, loaiTaiKhoan, jtStartIndex, jtPageSize, jtSorting, true);

            return Json(new { Result = "OK", Records = kq.dtoList, TotalRecordCount = kq.SoLuong });
        }

        [HttpPost]
        public JsonResult LayDanhSachDoanhNghiep(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.Admin);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            Object list = doanhnghiepDAO.LayDanhSachOptions();
            return Json(new { Result = "OK", Options = list });
        }

        [HttpPost]
        public JsonResult LayDanhSachLoaiTaiKhoan(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTaiKhoan);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            Object list = loaitaikhoanDAO.LayDanhSachOptions();
            return Json(new { Result = "OK", Options = list });
        }

        [HttpPost]
        public JsonResult LayDanhSachLoaiThanhVien(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.Admin);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            Object list = loaithanhvienDAO.LayDanhSachOptions();
            return Json(new { Result = "OK", Options = list });
        }
        /*           KẾT THÚC NGƯỜI DUNG      */


        /*               TIN TỨC           */

        //
        // GET: /Admin/ThemTinTuc
        [HttpPost]
        public JsonResult ThemTinTuc(Data_DAO_DTO_Lib.DTO.TINTUC_DTO tinTuc)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTinTuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                //tinTuc.IDTa = 1;

                Data_DAO_DTO_Lib.DTO.DTO tt = tintucDAO.Them(tinTuc);

                return Json(new { Result = "OK", Record = tt });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        //
        // POST: /Admin/XoaTinTuc
        [HttpPost]
        public JsonResult XoaTinTuc(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTinTuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                tintucDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/CapNhatTinTuc
        [HttpPost]
        public JsonResult CapNhatTinTuc(Data_DAO_DTO_Lib.DTO.TINTUC_DTO tinTuc)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTinTuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                //tam thoi chinh sua sau
                tinTuc.NgayDang = DateTime.Now;
                tintucDAO.CapNhat(tinTuc);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // GET: /Admin/QuanLyTinTuc
        public ActionResult QuanLyTinTuc()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTinTuc);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
             }

            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);
            Models.Admin_QuanLyTinTuc model = new Models.Admin_QuanLyTinTuc();

            return View("Admin_QuanLyTinTuc", model);
        }

        // GET: /Admin/DanhSachTinTuc
        [HttpPost]
        public JsonResult DanhSachTinTuc(string tieuDe = "", string noiDung = "", int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTinTuc);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            Data_DAO_DTO_Lib.DTO.DTO_Loc kqLoc = tintucDAO.LayDanhSachSuDungLoc(tieuDe,noiDung, jtStartIndex, jtPageSize, jtSorting);
            int soLuong = kqLoc.SoLuong;
            return Json(new { Result = "OK", Records = kqLoc.dtoList, TotalRecordCount = soLuong });

        }
        /*           KẾT THÚC TIN TỨC          */

        /*               Tìm mua           */

        //
        // GET: /Admin/ThemTimMua
        [HttpPost]
        public JsonResult ThemTimMua(Data_DAO_DTO_Lib.DTO.THONGTINTIMMUA_DTO timMua)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTimMua);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                //tinTuc.IDTa = 1;
                //id người đăng của người đang đăng nhập
                timMua.IDNguoiDang = 1;
                Data_DAO_DTO_Lib.DTO.DTO tm = timmuaDAO.Them(timMua);

                return Json(new { Result = "OK", Record = tm });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        //
        // POST: /Admin/XoaTimMua
        [HttpPost]
        public JsonResult XoaTimMua(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTimMua);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                timmuaDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/CapNhatTimMua
        [HttpPost]
        public JsonResult CapNhatTimMua(Data_DAO_DTO_Lib.DTO.THONGTINTIMMUA_DTO timMua)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTimMua);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                timmuaDAO.CapNhat(timMua);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // GET: /Admin/QuanLyTimMua
        public ActionResult QuanLyTimMua()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTimMua);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
             }

            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);
            Models.Admin_QuanLyCanBan model = new Models.Admin_QuanLyCanBan(taiKhoanDAO.LayDanhSach());
            return View("Admin_QuanLyTimMua", model);
        }

        // GET: /Admin/DanhSachTimMua
        [HttpPost]
        public JsonResult DanhSachTimMua(String tenViet = "", String tenAnh = "",int loaiCanBan = 0, int nguoiDang = 0,int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyTimMua);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }
            
            Data_DAO_DTO_Lib.DTO.DTO_Loc kq = timmuaDAO.LayDanhSachSuDungLoc(tenViet, tenAnh,loaiCanBan,  nguoiDang, jtStartIndex, jtPageSize, jtSorting, true);
            return Json(new { Result = "OK", Records = kq.dtoList, TotalRecordCount = kq.SoLuong });

        }

        /*           KẾT THÚC Tìm mua          */


        /*               DANHMUC          */

        //
        // GET: /Admin/ThemDanhMuc
        [HttpPost]
        public JsonResult ThemDanhMuc(Data_DAO_DTO_Lib.DTO.DANHMUC_DTO danhMuc)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyDanhMuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                Data_DAO_DTO_Lib.DTO.DTO dm = danhmucDAO.Them(danhMuc);
                return Json(new { Result = "OK", Record = dm });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        //
        // POST: /Admin/XoaDanhMuc
        [HttpPost]
        public JsonResult XoaDanhMuc(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyDanhMuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                danhmucDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/CapNhatDanhMuc
        [HttpPost]
        public JsonResult CapNhatDanhMuc(Data_DAO_DTO_Lib.DTO.DANHMUC_DTO danhMuc)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyDanhMuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                danhmucDAO.CapNhat(danhMuc);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // GET: /Admin/QuanLyDanhMuc
        public ActionResult QuanLyDanhMuc()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyDanhMuc);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
             }

            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);

            return View("Admin_QuanLyDanhMuc");
        }

        // GET: /Admin/DanhSachDanhMuc
        [HttpPost]
        public JsonResult DanhSachDanhMuc(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyDanhMuc);
            if (isCoQuyen == false)
            {
                return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }
            int soLuong = danhmucDAO.LaySoLuong();
            List<Data_DAO_DTO_Lib.DTO.DTO> list = danhmucDAO.LayDanhSachCoThamSo(jtStartIndex, jtPageSize, jtSorting);
            return Json(new { Result = "OK", Records = list, TotalRecordCount = soLuong });

        }

        /*           KẾT THÚC DANH MUC        */

        /*               LINHVUC          */

        //
        // GET: /Admin/ThemLinhVuc
        [HttpPost]
        public JsonResult LayDanhSachLinhVuc(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyLinhVuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                Object list = linhvucDAO.LayDanhSachOptions();
                return Json(new { Result = "OK", Options = list });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }


        [HttpPost]
        public JsonResult ThemLinhVuc(Data_DAO_DTO_Lib.DTO.LINHVUC_DTO linhVuc)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyLinhVuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                Data_DAO_DTO_Lib.DTO.DTO lv = linhvucDAO.Them(linhVuc);
                return Json(new { Result = "OK", Record = lv });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        //
        // POST: /Admin/XoaLinhVuc
        [HttpPost]
        public JsonResult XoaLinhVuc(int id)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyLinhVuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                linhvucDAO.Xoa(id);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // POST: /Admin/CapNhatLinhVuc
        [HttpPost]
        public JsonResult CapNhatLinhVuc(Data_DAO_DTO_Lib.DTO.LINHVUC_DTO linhVuc)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyLinhVuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            try
            {
                linhvucDAO.CapNhat(linhVuc);
                return Json(new { Result = "OK" });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }

        //
        // GET: /Admin/QuanLyLinhVuc
        public ActionResult QuanLyLinhVuc()
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyLinhVuc);
            if (isCoQuyen == false)
            {
                return RedirectToAction("Index", "Home");
             }

            ViewBag.TK = N03_11HCA_HTTTHD.TienIch.HeThong.LayThongTinTKHienTai(Session);

            return View("Admin_QuanLyLinhVuc");
        }

        // GET: /Admin/DanhSachLinhVuc
        [HttpPost]
        public JsonResult DanhSachLinhVuc(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            bool isCoQuyen = N03_11HCA_HTTTHD.TienIch.HeThong.KiemTraCoQuyenTruyCap(Session, N03_11HCA_HTTTHD.TienIch.QuyenTruyCap.AdminQuanLyLinhVuc);
            if (isCoQuyen == false)
            {
                 return Json(new { Result = "ERROR", Message = "Không có quyền thực thi tác vụ này!" });
            }

            int soLuong = linhvucDAO.LaySoLuong();
            List<Data_DAO_DTO_Lib.DTO.DTO> list = linhvucDAO.LayDanhSachCoThamSo(jtStartIndex, jtPageSize, jtSorting);
            return Json(new { Result = "OK", Records = list, TotalRecordCount = soLuong });

        }

        /*           KẾT THÚC LINH VUC       */
    }
}
